package com.xhwy.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 返回给前端的信息对象
 */
@Data
public class R implements Serializable {
    private static final long serialVersionUID = 1L;
    //通用成功代码
    private static final String SUCCESS_CODE = "001";
    //失败状态码
    public static final String FAIL_CODE = "004";

    private String code; //响应码
    private String message; //响应消息
    private Map<String, Object> data; //数据

    /**
     * 返回自定义成功消息的结果对象
     * @param message
     * @return
     */
    public static R ok(String message){
        R r = new R();
        r.setCode(SUCCESS_CODE);
        r.setMessage(message);
        return r;
    }

    /**
     * 返回默认的成功结果对象
     * @return
     */
    public static R ok(){
        return ok("success");
    }
    /**
     * 返回自定义失败消息的结果对象
     * @param message
     * @return
     */
    public static R error(String message){
        R r = new R();
        r.setCode(FAIL_CODE);
        r.setMessage(message);
        return r;
    }
    /**
     * 返回默认的失败结果对象
     * @return
     */
    public static R error(){
        return error("error");
    }

    /**
     * 向Map类型的data属性中添加数据
     * @param key
     * @param value
     * @return
     */
    public R put(String key, Object value){
        if(this.data == null) this.data = new HashMap<>();
        this.data.put(key, value);
        return this;
    }
}
